function fig = PlotMagnetometerBandwidth(obj, bandwidthdata)
    if nargin == 1
        bandwidthdata = obj.SystemInfo.MagnetometerBandwidth;
    end
    
    data1 = bandwidthdata.signal.getNodeData(1); fList=data1.x; amplitude=data1.y;
    data2 = bandwidthdata.signal.getNodeData(2); phase = data2.y;
    fList0 = linspace(0, max(fList), 101);
    
    fig = figure('Name', sprintf('Bandwidth: [%s]', datestr(bandwidthdata.timestamp)), 'WindowStyle', 'Docked'); 
    ax1=subplot(2, 1, 1, 'Parent', fig);
    plot(ax1, fList, amplitude, 'b.', fList0, bandwidthdata.fitting.R.result(fList0), 'r-');
    xlim(ax1, [0 max(fList)]); grid on;
    xlabel(ax1, 'Driving Frequency (Hz)'); ylabel(ax1, 'Magnetometer Amplitude (V)');
    title(ax1, sprintf('Signal Amplitude %3.2f V, BW = %3.1f Hz, Amp. = %5.3fV, Bg. = %5.3fV', ...
                        bandwidthdata.parameter.amplitude, bandwidthdata.fitting.R.bandwidth, bandwidthdata.fitting.R.amplitude, bandwidthdata.fitting.R.background));
    ax2=subplot(2, 1, 2, 'Parent', fig);
    plot(ax2, fList, unwrap(phase)/pi*180, 'b.', fList0, bandwidthdata.fitting.Theta.result(fList0)/pi*180, 'r-');
    xlim(ax2, [0 max(fList)]); grid on;
    xlabel(ax2, 'Driving Frequency (Hz)'); ylabel(ax2, 'Magnetometer Phase (deg)');
    title(sprintf('g_{129}=%3.1f, \\theta_{129} = %3.2f^{\\circ}; g_{131}=%3.1f, \\theta_{131} = %3.2f^{\\circ}', ...
                   bandwidthdata.fitting.R.gain129, bandwidthdata.fitting.Theta.phase129, bandwidthdata.fitting.R.gain131, bandwidthdata.fitting.Theta.phase131));
end

